We need a csv or excel table with metadata that is also reflected in the filename parts.
library(DT)
#-------------------------------------------------
# Read filenames from directory
dirinput <- 'C:/Users/GFraga/Documents/GitHub/CRS_AFFORD/AFFORD_THUMBS/Spring/'
fnames <- dir(dirinput)
# Create metadata table
metadata <- as.data.frame(fnames[grepl('^JP*.*.jpg$',fnames)])
colnames(metadata) <- 'file'
# split name parts to fill metadata columns
parts <- strsplit(metadata$file,'-')
basenames <- sapply(strsplit(metadata$file,'.tif'),'[[',1)
metadata$specID <- sapply(strsplit(basenames,'-'),'[[',1)
metadata$status <- sapply(strsplit(basenames,'-'),'[[',2)
metadata$scan <- sapply(strsplit(basenames,'-'),'[[',3)
metadata$seq <- sapply(strsplit(basenames,'_'),'[[',2)
metadata$rec <- sapply(strsplit(basenames,'_rec'),'[[',2)
# Dynamic table -------------------------------------------------
# add html component to column with file namens
metadata$link <- metadata$file
metadata$link <- paste0('<img src=\'Spring/', metadata$link, '\' height=\'50\' witdth = \'50\'></img>')
# Render table (ref https://www.rdocumentation.org/packages/DT/versions/0.28/topics/datatable)
datatable(
metadata, filter = "top",
rownames=FALSE, width="100%",
class='compact cell-border hover', # CSS classes https://datatables.net/manual/styling/classes
extensions=c('Buttons','Select','SearchPanes'),
selection = 'none',
options=list(dom='Bfrtip', buttons=c('copy','csv','excel','pdf')),
escape=FALSE
)
# Dynamic table -------------------------------------------------
# add html component to column with file namens
metadata$link <- metadata$file
metadata$link <- paste0('<img src=\'Spring/', metadata$link, '\' height=\'50\' witdth = \'50\'></img>')
datatable(
metadata, filter = "top",
rownames=FALSE, width="100%",
class='compact cell-border hover', # CSS classes https://datatables.net/manual/styling/classes
extensions=c('Buttons','Select','SearchPanes'),
selection = 'none',
escape = FALSE,
options = list(dom = 'Pfrtip', buttons=c('copy','csv','excel','pdf'),
columnDefs = list(list(
searchPanes = list(show = FALSE), targets = 1
))),
)
<specID>_<status>_<scan><(desc)>_<(version)>_<rec>
specID: str + num specimen ID (JP01)
status: str specimen status (dead | invivo)
scan: num + str number of scans (1scan)
desc: OPTIONAL str + num additional description
of scans
version: OPTIONAL str + num specifies version
if multiple (v1)
seq: num sequence number (053)
rec: str + num recording identifier
(rec00182)
<field> required field
<(field)> Optional field
<coun><specID> ?